using System;
using NCover.Objects;

namespace NCover.DeinstrumentMethods
{
	/// <summary>
	/// Implementations of this interface deliver a way to restore files back to there
	/// previous uninstrumented state. There are several possible methods so we should
	/// let the nant build script choose dependent on their critiera.
	/// </summary>
	public interface DeinstrumentMethod
	{
		/// <summary>
		/// Implement this method to save the details of this file prior to instrumentation.
		/// </summary>
		/// <param name="filename">Filename to be instrumented after this call.</param>
		void preinstrument(string filename);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="counter">Details of the instrumentation (E.g. method called)</param>
		/// <param name="filename">filename of instrumented file.</param>
		void deinstrument(Counter counter, string filename);
	}
}
